import React, { Component } from 'react';
import { View, StyleSheet, Modal, ActivityIndicator, Text } from 'react-native';
import PropTypes from 'prop-types';

import BaseStyle from '../constants/Style';

/**
 * 使用方法
 * 
 * 
 * import Loadding from '../components/loading';
 *   <Loadding
          loading={true}
          text={'Loading'}
        />

 */

export default class Loading extends Component {
  static defaultProps = {
    loading: false,
    text: '加载中...',
    color: '#aaa',
  };
  static propTypes = {
    loading: PropTypes.bool,
    text: PropTypes.string,
    color: PropTypes.string,
  };
  constructor(props) {
    super(props);
    this.state = {};
  }
  componentDidMount() {}

  render() {
    const { loading, text, color } = this.props;

    return (
      <Modal
        animationType={'fade'}
        transparent={true}
        visible={loading}
        onRequestClose={() => {}}>
        <View style={styles.modalContainer}>
          <View style={styles.modal}>
            <ActivityIndicator size="large" color={color} />
            <Text style={styles.modalText}>{text}</Text>
          </View>
        </View>
      </Modal>
    );
  }
}

const styles = StyleSheet.create({
  // modelView: {
  //   flex: 1,
  //   backgroundColor: 'rgba(40,40,40,0.1)',
  //   ...BaseStyle.justifyContentCenter,
  //   ...BaseStyle.alignItemsCenter,
  // },
  modalContainer: {
    ...BaseStyle.modalBg,
    ...BaseStyle.alignItemsCenter,
    ...BaseStyle.justifyContentCenter,
    backgroundColor: 'rgba(0,0,0,0)',
  },
  modal: {
    ...BaseStyle.alignItemsCenter,
    ...BaseStyle.justifyContentCenter,
  },
  modalText: {
    ...BaseStyle.titleText,
    marginTop: 10,
  },
});
